A Multi-Input Multi-Output (“MIMO”) communication system uses a plurality of channels in a spatial area. Antenna arrays that have multiple transmission antennas can increase the capacity of data transmission through MIMO-transmission schemes.
In a MIMO-communication system, base stations and wireless terminals use codebooks for precoding information streams prior to transmission. Each codebook contains a number of elements. Each element of a codebook is a vector or a matrix, termed a precoding vector or a precoding matrix, respectively. To optimize communication with a base station, a wireless terminal determines various characteristics of the communication channel between the base station and itself, selects what it determines to be the best matrix or vector from a codebook, and indicates this selection to the base station. The base station may (but is not required to) use that matrix or vector for precoding data streams prior to transmission to the wireless terminal.
To indicate to the base station which matrix or vector it has selected, the wireless terminal transmits one or more codebook indices to the base station. A codebook index is an index of a precoding matrix. For example, given a first precoding matrix W1 and a second precoding matrix W2, W1 can be at least partially represented by a first index i1, and W2 can be at least partially represented by a second index i2. Put another way, the first codebook index i1 can be used to identify or point to an element in a first codebook of a set of W1 matrices. The second codebook index i2 can be used to identify or point to an element in a second codebook of a set of W2 matrices. Together, i1 and i2 jointly determine a precoding matrix, W, with a product structure, i.e., W=W1W2.